The present invention relates generally to computer systems and more particularly to graphical user interfaces for computer systems.
Graphical user interfaces (GUI) were popularized by the Lisa.RTM. and Macintosh.RTM. line of personal computers developed by Apple Computer, Inc. of Cupertino, Calif. A GUI permits users to interact with a computer system in an intuitive manner by selecting, manipulating, and otherwise acting upon graphical images or icons displayed on the screen of the computer. The GUI reduces the apparent complexity of a computer system, allowing the power of the computer to be accessed by even those persons with little or no technical training. A good GUI also enhances the computer experience by providing pleasing and aesthetic feed-back to a user.
For example, a file on a Macintosh computer can be represented by an icon on the computer's screen that resembles a file folder. To delete or "trash" the file, it can be selected and dragged to an icon of a trash can, which is always present on the "desk top" of the computer screen. This type of operation is known as a "point-and-drag" operation. The selection is accomplished by using a pointing device (such as a "mouse" or trackball) to position a pointer over the file folder icon, and by pressing a selection button on the pointing device. The selection of the file folder icon is indicated by changing the shade of the icon. The selected file folder icon can then be "dragged" to the trash can icon by continuing to hold down the selection button and manipulating the pointing device until the folder icon coincides with the trash can icon. During the dragging process, the image of the file folder icon remains stationary on the desktop, and a phantom outline image of the icon moves along a path to the trash can icon. When the file folder icon coincides with the trash can icon, the trash can icon changes shade (indicating selection) and a subsequent release of the selection button of the pointing device will "trash" the file folder. Once trashed, the file folder icon will disappear from the screen, and the trash can icon will bulge to indicate that it contains trash.
A new form of computer, the pen-based computer system, presents a new set of challenges and opportunities for an effective and aesthetically pleasing GUI. A pen-based computer system is typically a small, hand-held computer where the primary method for inputting data includes a "pen" or stylus. A pen-based computer system is commonly housed in a flat, rectangular enclosure, and has a dual-function display assembly providing a viewing screen along one of the planar sides of the enclosure. The dual-function display assembly serves as both an input device and an output device. When operating as an input device, the display assembly senses the position of the tip of a stylus on the viewing screen and provides this positional information to the computer's central processing unit (CPU). Some display assemblies can also sense the pressure of the stylus on the screen to provide further information to the CPU. When operating as an output device, the display assembly presents computer-generated images on the screen.
The dual-function display assemblies of pen-based computer systems permit users to operate the computer as a computerized notepad. For example, graphical images can be input into the pen-based computer by merely moving the stylus on the surface of the screen. As the CPU senses the position and movement of the stylus, it generates a corresponding image on the screen to create the illusion that the stylus is drawing the image directly upon the screen, i.e. that the stylus is "inking" an image on the screen. With suitable recognition software, text and numeric information can also be entered into the pen-based computer system in a similar fashion.
The stylus of a pen-based computer system is not completely analogous to the pointing devices used with desk top computers. For example, a point-and-drag operation is more cumbersome with a stylus because it doesn't have a select button to initially select the object to be dragged and then to release the object in a desired location. A point-and-drag for a pen-based computer system would involve the multiple steps of selecting an object on the screen, dragging the object, and indicating the completion of the process so that the object can be acted upon accordingly.
Point-and-drag methods of the prior art are helpful and intuitive components of a GUI. However, these methods have several limitations. For one, the user feedback that an object has been selected (by shading the icon) does not give the user any information concerning the change in status of the object, e.g. that it is intended to be deleted. For another, the user must manually drag the object to the desired location. Sometimes, the user misses the desired location and accidentally subjects the object to an unexpected result.